Method and system for identifying a user by voice

ABSTRACT

A method and apparatus identifies a caller as a user in a group of users. An enrollment process extracts a grammar of the user&#39;s password and a voiceprint of the user&#39;s password and name. A caller may identify himself as a user by speaking his name. The name is recognized and a number of users having a name most closely matching the name spoken is identified using voice recognition techniques. The caller then speaks his password and the grammar is identified that most closely matches the grammars of the passwords corresponding to the users identified from the spoken name. A voiceprint is extracted from the name and grammar spoken by the caller, and if the voiceprint matches the voiceprint extracted for the user identified using the grammar during that user&#39;s enrollment process, the caller is identified as that user.

FIELD OF THE INVENTION

[0001] The present invention is related to computer software and morespecifically to computer software for voice recognition.

BACKGROUND OF THE INVENTION

[0002] In order to identify a user to a computer system, voicerecognition software may be used. A user may speak one or more forms ofidentification to the voice recognition software, and the voicerecognition software attempts to identify the user using what was saidto the voice recognition software. The system also attempts to validatethe identification using unique characteristics of the user's voice thathave previously been identified during a “enrollment” procedure. Theenrollment procedure enrolls the unique characteristics of the person'svoice at a time when the person has been positively identified usingmeans other than voice, such as visual identification or a PIN number.

[0003] One approach described in U.S. Pat. No. 5,517,558 issued toSchalk is illustrative. A user speaks, one character at a time, apassword in response to a prompt. The password must be spoken onecharacter at a time because single character recognition can be moreaccurate than whole word recognition for reasons such as the limitednumber of single characters. The system uses speaker-independent voicerecognition techniques to recognize the characters spoken as a password.During this identification process, the system also extracts parametersfrom the password spoken that identify the unique details of the user'svoice. These parameters extracted during the identification process arematched against parameters previously extracted during an enrollmentprocess for the user having the password recognized.

[0004] If the two sets of parameters match relatively closely, there isa high probability that the user is the user identified. If the two setsof parameters have little in common, the user may be rejected, and ifthe two parameters are in between a close match and little in common,Schalk prompts for additional information, also to be spoken onecharacter at a time. Speaker independent techniques are used torecognize the additional information, and a match is attempted againstadditional information stored for the user to validate the identity ofthe user. However, in the preferred embodiment, Schalk always promptsthe user for the additional string and uses speaker independent voicerecognition techniques to confirm the identity of the individual bymatching the second string to corresponding information stored for theuser.

[0005] There are several problems with this approach. First, eachpassword in the system must be unique because the password is used touniquely locate the characteristics of the person's voice. To enforcethe rule that all passwords are unique, passwords must be assignedrather than chosen, or some users will not get their first passwordchoice and must select another password. In such systems, users whocannot use their first choice as a password tend to forget theirpasswords more often than a system in which every user can use their ownfirst choice password, even if such password is already being used byanother user. Second, the Schalk system requires passwords to be spokenone character at a time. Users may find such a system unnatural to use.

[0006] What is needed is a method and apparatus that can identify a userwithout requiring that all passwords be unique or spoken one characterat a time.

SUMMARY OF INVENTION

[0007] A method and system allows users to enroll by speaking their nameand password. A grammar is extracted from the name and password thatidentifies how the user speaks the name and password. A voiceprint isextracted from the name and password that identifies characteristics ofthe user's voice. The user's account can be marked as having beenenrolled, and the voiceprint and grammar are stored associated with-theuser's account identifier. When a caller wishes to identify himself as auser, he is prompted for his name and password, and speaks his name andpassword. The method and system uses conventional voice recognition onthe name to narrow the list of possible users from those who haveenrolled to a smaller number of users most closely matching therecognized name. The method and system extracts the grammar from thecaller's password and attempts to match the grammar against the grammarsassociated with the smaller number of users to identify an even smallernumber of users or as few as one user. The method and system extracts avoiceprint from the name and grammar and matches the voiceprintextracted with the voiceprints of the smaller number of users obtainedduring the enrollment process. The match is performed either to narrowthe identity of the caller from the smaller number of users to a singleuser, or to verify the identity of the single user whose grammar of thepassword matches that of the caller.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008]FIG. 1 is a block schematic diagram of a conventional computersystem.

[0009]FIG. 2 is a block schematic diagram of a system for identifying aperson to a computer according to one embodiment of the presentinvention.

[0010]FIG. 3A is a flowchart illustrating a method of a method ofenrolling a person to a computer according to one embodiment of thepresent invention.

[0011]FIG. 3B is a flowchart illustrating a method of identifying acaller as a user according to one embodiment of the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

[0012] The present invention may be implemented as computer software ona conventional computer system. Referring now to FIG. 1, a conventionalcomputer system 150 for practicing the present invention is shown.Processor 160 retrieves and executes software instructions stored instorage 162 such as memory, which may be Random Access Memory (RAM) andmay control other components to perform the present invention. Storage162 may be used to store program instructions or data or both. Storage164, such as a computer disk drive or other nonvolatile storage, mayprovide storage of data or program instructions. In one embodiment,storage 164 provides longer term storage of instructions and data, withstorage 162 providing storage for data or instructions that may only berequired for a shorter time than that of storage 164. Input device 166such as a computer keyboard or mouse or both allows user input to thesystem 150. Output 168, such as a display or printer, allows the systemto provide information such as instructions, data or other informationto the user of the system 150. Storage input device 170 such as aconventional floppy disk drive or CD-ROM drive accepts via input 172computer program products 174 such as a conventional floppy disk orCD-ROM or other nonvolatile storage media that may be used to transportcomputer instructions or data to the system 150. Computer programproduct 174 has encoded thereon computer readable program code devices176, such as magnetic charges in the case of a floppy disk or opticalencodings in the case of a CD-ROM which are encoded as programinstructions, data or both to configure the computer system 150 tooperate as described below.

[0013] In one embodiment, multiple computer systems 150 are used toimplement the present invention. A conventional mainframe computer suchas a conventional S/390 computer system commercially available from IBMCorporation of Armonk, N.Y. may be coupled to one or more conventionalSun Microsystems Ultra Sparc computer systems running the Solaris 2.5.1operating system commercially available from Sun Microsystems ofMountain View, Calif., although other systems may be used. A VPSrecognizer commercially available from Periphonics Corporation ofBohemia, N.Y. and any of Nuance 6, Nuance Verifier, Nuance Developer'sToolKit and Speech Objects software commercially available from NuanceCommunications of Menlo Park, Calif. are used with the Ultra Sparccomputer to perform certain recognition functions.

[0014] System—Enrollment

[0015] Referring now to FIG. 2 a system 200 for identifying a person toa computer is shown according to one embodiment of the presentinvention. In one embodiment, a user enrolls with the system 200 duringone session, then identifies himself to the system 200 during the sameor different session (between sessions, the user may be disconnectedfrom the system 200). To enroll with the system, a user is vocallyconnected with enrollment manager 220 at input 210. Input 210 may bereached by dialing it or via a studio or transfer from an operator whoreceives the caller and verifies the callers identity. If the callerdialed in, enrollment manager 220 may validate the identity of thecaller by prompting for one or more forms of identification, such as anaccount number and PIN. This information may be spoken or keyed in usingtouch tones or other input methods. Enrollment manager 220 stores thisinformation internally for use as described below.

[0016] To validate the identity of the caller, enrollment manager 220can request from a account information storage 236 which may be aconventional personal computer, minicomputer or mainframe computer, thecorresponding identification for the user. For example, enrollmentmanager 220 can request from account information storage 236 the PINcorresponding to the account number received from the user. Enrollmentmanager 220 can verify the identity of the user by comparing the PINreceived from account information storage 236 with the PIN received fromthe user. If enrollment manager 220 verifies the identity of the user,enrollment manager 220 prompts the user to separately speak his name andpassword in one embodiment.

[0017] Although a name and password are used herein in one embodiment,other forms of identification may be used, and a larger or smallernumber of forms of identification may also be used in other embodiments.

[0018] In one embodiment, enrollment manager 220 passes the name andpassword spoken by the user to voiceprint extractor 222 for use asdescribed below, and passes the name and password to grammar extractor224 for use as described below. In another embodiment, enrollmentmanager 220 passes only the password to grammar extractor 224.

[0019] Voiceprint extractor 222 receives the spoken name and passwordfrom enrollment manager 220 and can receive other spoken information aswell. For example, in one embodiment, enrollment manager 220 promptseach user to speak the same phrase, such as “My voice is my password”and provides the response to voiceprint extractor 222 to for extraction.Voiceprint extractor 222 uses conventional speaker verification modelingtechniques to extract one or more characteristics and/or patterns of theuser's voice that can uniquely identify the user from the generalpopulation or at least discriminate a user from at least approximately99.5% of the general population with near zero false acceptances andnear zero false rejections.

[0020] Voiceprint extractor 222 stores in voiceprint storage 232 thevoiceprint, extracted as described above. In one embodiment, voiceprintextractor 222 receives from enrollment manager 220 the account number orother identifier of the user. Voiceprint extractor 222 stores thevoiceprint associated with the account number or other identifier of theuser whose voice the voiceprint describes. This may be performed using adatabase or by storing each voiceprint in a separate file with afilename equal to the account number or using any other conventionaltechnique.

[0021] Grammar extractor 224 receives the user's spoken password fromenrollment manager 220, and extracts a grammar from the password.Grammars are a description of the sounds and transitions between themand order of the sounds that form a word or words. In one embodiment, agrammar is similar to a dictionary pronunciation of a word, whichdescribes the elemental sounds that make up the word, and provides anindication of emphasis, implying loudness and pitch relative to the restof the word. If grammar extractor 224 receives the name from enrollmentmanager 220, grammar extractor 224 extracts a grammar from the name.

[0022] Grammar extractor 224 stores the grammar of the user's spokenpassword in grammar storage 234. In one embodiment, grammar extractor224 receives the user's account number or other identifier fromenrollment manager 220, and associates the grammar or grammars it storesin grammar storage 234 with the account number or other identifier asdescribed above with reference to voiceprint extractor 222. This may beaccomplished using conventional database techniques or otherconventional techniques.

[0023] If grammar extractor 224 receives the user's name, grammarextractor 224 repeats the process above on the name, storing the grammarof the name in grammar storage 234.

[0024] In one embodiment, when voiceprint extractor 222 and grammarextractor 224 complete the process described above, the signalenrollment manager 220. Enrollment manager 220 marks in accountinformation storage 236 the name of any user that successfully completesthe enrollment procedure described above so that the recognition processdescribed below need only attempt to recognize those names of people whohave enrolled.

[0025] If desired, the prompting process described above for the name,password or both may be repeated a number of times such as three, andthe responses received used to refine the extraction of the voiceprint,grammar or both. Other information may also be prompted for and receivedto refine the extraction described above.

[0026] System—Identification

[0027] When a user wishes to be identified using his voice, the userconnects to ID manager 240 via input/output 212. Input/output 212 may bea conventional dial-up telephone line. ID manager 240 contains aconventional telephone interface, although other means of interface suchas an Internet telephony interface may be used.

[0028] When ID manager 240 receives a call, ID Manager 240 signalserror/name prompter 242 which prompts the caller to speak his or hername via input/output 212. ID manager 240 listens for a response andpasses voice responses to name recognizer 244 and to voiceprintextractor 222. ID manager 240 may pass any responses in analog ordigital form and may pass the response in real time or after recordingthem.

[0029] Before the name is spoken, the caller's account number could beany of the valid accounts corresponding to those people who haveenrolled. Name recognizer 244 uses conventional voice recognitiontechniques attempts to narrow the possible accounts corresponding to thename spoken down to a smaller number of accounts than all of theaccounts of people who have enrolled, but greater than one account. Forexample, name recognizer 244 can attempt to narrow the list down to tenaccounts or even a hundred, which may be smaller than the number ofvalid, enrolled accounts, which may number in the thousands, tens ofthousands, hundreds of thousands or millions.

[0030] Name recognizer 244 can use any of speaker dependent or speakerindependent techniques to try to identify the several accounts thatpotentially correspond to the name it receives. For example, it can sendthe name to grammar extractor 224 to extract the grammar of the namereceived and then try to find in grammar storage 234 the nearest matchesof grammars of the people who have spoken their names. Alternatively,name recognizer 244 can attempt to use speaker independent voicerecognition techniques to narrow the list of possible accounts down to asmaller number. Each of these techniques will now be described in moredetail.

[0031] In one embodiment, name recognizer 244 sends to grammar extractor224 the name it receives from ID manager 240. Grammar extractor 224extracts the grammar from the spoken name received from name recognizer244 and passes it back to name recognizer 244. Name recognizer 244attempts to locate in grammar storage 234 using conventional patternmatching techniques the N best matches between the grammar it receivesfrom grammar extractor 224 and the grammars for the names that wereextracted during the enrollment procedure for each user as describedabove. N may be 10 or 100 or any other number.

[0032] In an alternate embodiment name recognizer 244 uses the text ofthe names of all enrolled users that are stored in account informationstorage 236 to perform the recognition using conventional speakerindependent speech recognition techniques. Name recognizer 244 attemptsto resolve the name into a sequence of primitive sounds, then identifiespossible spellings of those sounds. In one embodiment, name recognizer244 locates from among the names marked as enrolled the N best matcheswith the name spoken by the caller in response to the prompt bycomparing the possible spellings with the actual spellings of the namesof the enrolled users stored in account information storage 236. Asimilar technique may be performed by having name recognizer 244identify and store the primitive sounds of the name of each enrolledaccount stored in account information storage and store this informationin account information storage 236 for comparison with the primitivesounds received. Other speaker independent techniques may also be used.

[0033] Speaker independent recognition may make use of utteranceinformation spoken by a wide variety of people using a wide variety ofaccents and voices via input 245. Name recognizer 244 uses thisinformation to identify each primitive sound using conventionaltechniques.

[0034] Another speaker independent technique is to have name recognizer244 compare the name received to a vocabulary of known names. Thefeasibility of this technique will depend on the number of possiblenames. As noted above, the names may be replaced with other words forwhich a vocabulary may be more feasible.

[0035] In one embodiment, N may be 10, in another embodiment, N may be100, and N may be other numbers in still other embodiments. In analternative embodiment, instead of requiring N matches to occur, aconfidence level is selected, and name recognizer 244 locates allmatches exceeding the confidence level. In any of the embodiments, thenames corresponding to more than one account are identified as apotential match for the name that is spoken in response to the prompt.In one embodiment, name recognizer 244 indicates the account names thatare potential matches by marking in account information storage 236 theaccount records corresponding to the names it identifies.

[0036] Name recognizer 244 signals ID manager 240 when it has performedthe functions identified above. ID manager 240signals password prompter250, which prompts the user for his or her password via input/output212. ID manager 240 passes any responses to grammar extractor 224 and tovoiceprint extractor 222, and signals speaker dependent recognizer 254.

[0037] Grammar extractor 224 extracts the grammar from the response tothe password prompt and stores it in a special location in grammarstorage 234. Speaker dependent recognizer 254 compares the grammar inthe special location of grammar storage 234 with each of the grammarscorresponding to the accounts marked in account information storage 236by name recognizer 244 as described above. Speaker dependent recognizer254 identifies the closest match between the grammar in the speciallocation and the grammars corresponding to the marked accounts andpasses an identifier of the account to ID manager 240. Because grammarextractor 224 extracts the grammar of the word, which describes how theword is spoken, it does not need to recognize the word. Thus, the nameand/or password need not be a real word.

[0038] As shown and described herein, grammar extractor 224 is used forboth the enrollment process and the identification process. However,different grammar extractors could be used for each process.

[0039] Because ID manager 240 passes the name and password to voiceprintextractor 222, simultaneously with the operation of the name recognizer244 and speaker dependent recognizer 254 and the ancillary activities(prompting, grammar extracting, etc.) described herein, voiceprintextractor 222 extracts a voiceprint for the caller as described above,and stores the voiceprint so extracted in a special location ofvoiceprint storage 232.

[0040] ID manager 240 passes the identifier it receives from speakerdependent recognizer 254 to verifier 252. Verifier 252 receives from IDmanager 240 the identifier of the account ID manager 240 received fromspeaker dependent recognizer 254, and verifies the identity of thecaller by attempting to match some or all of the voiceprint extractedfrom the caller at input 212 with the voiceprint stored in voiceprintstorage 232 for the account having the identifier verifier 252 receivesfrom ID manager 240. If the portion or all of the voiceprints match ornearly match within an acceptable tolerance level, verifier 252 providesthe identifier of the account at output 260 to identify the caller. Ifthe voiceprints do not match, verifier 252 signals ID manager 240. Theacceptable tolerance level can vary based on the application and theamount information collected from the person's voice, and can be setbased on experience. In one embodiment, the confidence level will rangefrom +1, indicating a highly probable match to −1 indicating no match.The acceptable confidence level is +0.7 in one embodiment, althoughother values such as 0.6, 0.5, 0.8 and 0.9 may be used.

[0041] As shown and described herein, the same voiceprint extractor 222is used for both the enrollment of the user and the verification of theuser. However, different voiceprint extractors (not shown) may be usedfor each of these functions.

[0042] In the event of an error, ID manager signals error/name prompter242. An error occurs if name recognizer 244 does not match any names(and therefore signals ID manager 240), speaker dependent recognizer 254does not match any grammars (and therefore signals ID manager 240), orverifier 252 does not match the voiceprints (and therefore signals IDmanager 240), each as described above. Error/name prompter 242 informsthe caller of the error and restarts the procedure above by promptingfor the name.

[0043] Referring now to FIG. 3A, a method of enrolling a person to acomputer is shown according to one embodiment of the present invention.A user is prompted for a name and an utterance that is a name isreceived 310 as described above. A voiceprint is extracted from the nameand optionally a grammar or other description of the spoken attributesof the name may be extracted 312 as described above.

[0044] The user is prompted for his or her password and an utterancecontaining the password is received 314 as described above. Thevoiceprint and grammar are extracted from the password 316, 318 asdescribed above. The information extracted in steps 312, 316, and 318 isstored, associated with the account number or other identifier of theuser 320. The user's account may be marked 320 as having successfullycompleted enrollment so that recognition may be attempted only on thoseaccounts that are so marked as described in more detail above and below.

[0045] The voiceprint described in steps 312 and 316 may-be extractedand refined in these steps, and the caller may be prompted for the sameor other information, which may be used to further refine thevoiceprint. For example, the caller may be prompted for his or her namerepeatedly in steps 310 and receipt of multiple copies of the name maybe used in the extraction of step 312. The password may also berepeatedly prompted in step 314 and each response used in steps 316,318.

[0046] Referring now to FIG. 3B, a method of identifying a caller as auser is shown according to one embodiment of the present invention. Thecaller is prompted for his or her name and an utterance that is supposedto be the name is received 350 in response as described above. In oneembodiment, step 350 includes distinguishing the name from backgroundnoise, coughs, static or other sounds that are not words by usingconventional speech recognition techniques. A voiceprint is extracted352 from the name received in step 350. In addition, the name receivedin step 350 is recognized 354 using speaker independent or speakerdependent techniques as described above to identify 356 the best Nmatches, where N is greater than one. N may be ten or 100 or any othernumber that is smaller than either the number of accounts or the numberof accounts that were marked as having completed enrollment as describedabove. In one embodiment, the recognition is attempted only for thoseaccounts that were so marked, and other accounts are skipped during therecognition step 354. Step 356 may comprise marking the accounts of theidentified users.

[0047] If no accounts are identified or none are identified where therecognition exceeds a specified confidence level, an error occurs 358,the error may be explained 372 to the user via an error prompt and themethod continues at step 372. If desired, an error counter may be set tozero in a step (not shown) preceding step 350 and incremented at step372. When the error count reaches a specified threshold, the caller istransferred to an operator or dropped. If no error occurs 358, themethod continues at step 360.

[0048] The caller is prompted for a password, and the password isreceived 360 as described above. Additional voiceprint information isextracted 362 from the password received in step 360 and this additionalvoiceprint information is added to, or used to refine, the voiceprintextracted in step 352 as described above.

[0049] The grammar is extracted 364 from the password received in step360 as described above. The grammar extracted in step 364 is comparedwith the grammars extracted as described above with reference to FIG. 3Aand the best match 366 with a single account from among those identifiedin step 356. Step 366 may be performed by picking the closest match,above a specified confidence level (e.g. 95% match) to the grammarextracted in step 364.

[0050] If such a match is not located 368, the method continues at step372 to allow a suitable error message to be played to the caller and themethod may continue at step 350 in one embodiment, or at step 360 inanother embodiment not shown. If the method continues at step 350, theaccounts identified in step 356 have the identification removed (e.g. byremoving the mark set in step 356 described above). If a match islocated, 368, a verification occurs as shown in steps 370-374 describedbelow.

[0051] The voiceprint of the account identified as a match in step 366is compared 370 with the voiceprint produced in steps 352 and 362. Thevoiceprint of the account was produced as described above with referenceto FIG. 3A. If the voiceprints match 372, the account ID is provided 374or another indication of authorization is provided in step 374.Otherwise, the method continues at step 372 in the same manner asdescribed above, with an indication of the error, and continuing at step350 or 360.

[0052] In one embodiment not shown, if the “no” branch of step 372 istaken, an error counter flag initialized to a value of 0 in a step (notshown) prior to step 350 is incremented at step 372. If the counter isequal to 1, the method continues at step 360. If the counter is equal to2, the method continues at step 372. If the counter is equal to 3, themethod continues by transferring the caller to an operator, andoptionally, the account matched in step 366 may be locked from furtheruse.

[0053] In an alternate embodiment of the present invention, instead ofnarrowing the list of users down to a single user when the grammars arecompared in step 366, and then verifying the identity,of the user bycomparing the voiceprints, the list of users may be a small number, e.g.5 after the grammars are compared in step 366, and the voiceprintcomparison of step 370 may be used to select the identity of the userfrom this small number of users.

What is claimed is:
 1. A system for identifying a selected user from afirst plurality of users, the system comprising: a first grammarextractor having a first input operatively coupled to receive anidentifier of one of the plurality of users, and a second inputoperatively coupled to receive a first utterance from the one of thefirst plurality of users uttered during a first session, the firstgrammar extractor for extracting a first grammar from the firstutterance received at the first grammar extractor first input and forproviding at an output the first grammar and the correspondingidentifier received at the first input; a grammar storage having aninput/output coupled to the first grammar extractor output, forreceiving the first grammar and identifier for each of the plurality ofusers and storing the grammar responsive to the identifier, and forproviding at the input/output one of said grammars corresponding to anidentifier responsive to receipt of said identifier at the grammarstorage input/output; a second grammar extractor having an inputoperatively coupled to receive a second utterance from the selected useruttered during a second session different from the first session, thesecond grammar extractor for extracting and providing at an output asecond grammar responsive to the second utterance received at the secondgrammar extractor input; and a first recognizer having a first inputcoupled to the grammar storage input/output, and a second input-coupledto the second grammar extractor output, the first recognizer foridentifying a match between a set of a plurality of the first grammarsstored in the grammar storage and the second grammar received at thesecond first recognizer input, and for providing at an output coupled toan apparatus output, the identifier of the user corresponding to thegrammar in the grammar storage most closely matching the grammarreceived at the first second input.
 2. The system of claim 1, whereinthe first utterance comprises a password of the one of the plurality ofusers, and the second utterance comprises a password of the user.
 3. Thesystem of claim 1, wherein the first grammar extractor is the secondgrammar extractor.
 4. The system of claim 1, additionally comprising: Asecond recognizer having an input operatively coupled to receive a thirdutterance uttered during the second session, the second recognizer for,responsive to the third utterance, identifying a second plurality ofusers from the first plurality of users as belonging in the set ofusers.
 5. The system of claim 4, wherein the third utterance comprises aname of the user.
 6. The system of claim 5, wherein the secondrecognizer identifies the second plurality of users responsive to thethird utterance by recognizing the third utterance and comparing therecognized third utterance with a list of user identifiers of the firstplurality of users.
 7. The system of claim 6, additionally comprising: afirst voiceprint extractor having a first input operatively coupled toreceive an identifier of one of the first plurality of users and asecond input operatively coupled to receive a fourth utterance from theone of the first plurality of users uttered during the first session,the first voiceprint extractor for creating a voiceprint responsive tothe fourth utterance and for providing the voiceprint and the identifierof the user at an output; a voiceprint storage having an input/outputcoupled to the first voiceprint extractor output, the voiceprint storagefor storing, for each of the first plurality of users, the voiceprintreceived at the voiceprint storage input/output associated with theidentifier of the user, and for providing a first voiceprint at theinput/output responsive to a request for the voiceprint comprising theidentifier of the user corresponding to the voiceprint received at thevoiceprint storage input/output; a second voiceprint extractor having aninput coupled to receive a fifth utterance uttered by the selected userduring the second session, the second voiceprint extractor forextracting and providing at an output a second voiceprint responsive tothe fifth utterance; and a verifier having a input/output coupled to thevoiceprint storage input/output, a first input coupled to the secondvoiceprint extractor output for receiving the second voiceprint, and asecond input coupled to the first recognizer output, and an outputcoupled to the apparatus output, the verifier for providing at theinput/output an identifier corresponding to the identifier received atthe second input and receiving at the input/output one of the firstvoiceprints, said first voiceprint corresponding to the identifierprovided at the input/output, the verifier additionally for comparingthe first voiceprint received at the verifier input/output with thevoiceprint received at the first verifier input and for signaling at anoutput coupled to the apparatus output responsive to said firstvoiceprint and said second voiceprint matching within an acceptabletolerance level.
 8. The system of claim 7 wherein: each fourth utterancecomprises a sixth utterance uttered by one of the plurality of usersduring the first session and the first utterance; and the fifthutterance comprises the second utterance and the third utterance.
 9. Thesystem of claim 8, wherein the sixth utterance comprises a name of oneof the first plurality of users.
 10. The system of claim 7 wherein thesecond voiceprint extractor is the first voiceprint extractor.
 11. Amethod of identifying a caller as a user of a computer system, themethod comprising: receiving a first utterance; extracting a grammarfrom the first utterance; comparing the grammar extracted with a set ofgrammars, each grammar in the set of grammars corresponding to a user;responsive to the comparing the grammar step, identifying a set of atleast one user, the number of users in set of at least one user smallerthan the number of users corresponding to the grammars in the set ofgrammars; and extracting a voiceprint from the first utterance;comparing the voiceprint extracted with a voiceprint for each user inthe set of at least one user; and identifying the user responsive to thecomparing the voiceprint step.
 12. The method of claim 11, wherein thenumber of users in the set of at least one user is one.
 13. The methodof claim 11, additionally comprising: receiving a second utterance fromthe caller; recognizing the second utterance; and identifying the set ofgrammars responsive to the recognizing the second utterance step. 14.The method of claim 13, wherein the recognizing step comprises speakerindependent voice recognition of the second utterance.
 15. The method ofclaim 13, wherein the recognizing step comprises speaker dependent voicerecognition of the second utterance.
 16. The method of claim 13, whereinthe extracting the voiceprint step comprises extracting the voiceprintfrom the first utterance and the second utterance.
 17. A computerprogram product comprising a computer useable medium having computerreadable program code embodied therein for identifying a caller as auser of a computer system, the computer program product comprising:computer readable program code devices configured to cause a computer toreceive a first utterance; computer readable program code devicesconfigured to cause a computer to extract a grammar from the firstutterance; computer readable program code devices configured to cause acomputer to compare the grammar extracted with a set of grammars, eachgrammar in the set of grammars corresponding to a user; computerreadable program code devices configured to cause a computer to,responsive to the computer readable program code devices configured tocause a computer to compare the grammar, identify a set of at least oneuser, the number of users in set of at least one user smaller than thenumber of users corresponding to the grammars in the set of grammars;computer readable program code devices configured to cause a computer toextract a voiceprint from the first utterance; computer readable programcode devices configured to cause a computer to compare the voiceprintextracted with a voiceprint for each user in the set of at least oneuser; and computer readable program code devices configured to cause acomputer to identify the user responsive to the comparing the voiceprintstep.
 18. The computer program product of claim 17, wherein the numberof users in the set of at least one user is one.
 19. The computerprogram product of claim 17, additionally comprising: computer readableprogram code devices configured to cause a computer to receive a secondutterance from the caller; computer readable program code devicesconfigured to cause a computer to recognize the second utterance; andcomputer readable program code devices configured to cause a computer toidentify the set of grammars responsive to the recognizing the secondutterance step.
 20. The computer program product of claim 19, whereinthe computer readable program code devices configured to cause acomputer to recognize comprise computer readable program code devicesconfigured to cause a computer to perform speaker independent voicerecognition of the second utterance.
 21. The computer program product ofclaim 19, wherein the computer readable program code devices configuredto cause a computer to recognize comprise computer readable program codedevices configured to cause a computer to perform speaker dependentvoice recognition of the second utterance.
 22. The computer programproduct of claim 19, wherein the computer readable program code devicesconfigured to cause a computer to extract the voiceprint comprisecomputer readable program code devices configured to cause a computer toextract the voiceprint from the first utterance and the secondutterance.